return {
    {
        "mikavilpas/yazi.nvim",
        cmd = { "Yazi" },
        dependencies = {
            "folke/snacks.nvim",
        },
        keys = {
            {
                "<leader>wn",
                "<cmd>Yazi toggle<cr>",
                desc = "file explorer",
            },
        },
        opts = {
            open_for_directories = false,
            keymaps = false,
            yazi_floating_window_border = "double",
        },
        init = function()
            vim.g.loaded_netrwPlugin = 1
        end,
    },

    {
        "nvim-neo-tree/neo-tree.nvim",
        cond = false,
        dependencies = {
            "nvim-lua/plenary.nvim",
            "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
            "MunifTanjim/nui.nvim",
        },
        cmd = { "Neotree" },
        keys = {
            { "<leader>wn", "<cmd>Neotree float toggle=true<cr>", desc = "文件树" },
            { "<leader>wN", "<cmd>Neotree left toggle=true<cr>", desc = "文件树" },
        },
        config = function()
            require("neo-tree").setup {
                close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
                default_component_configs = {
                    symlink_target = {
                        enabled = true,
                    },
                },
                commands = {},
                window = {
                    position = "left",
                    width = 40,
                    mapping_options = {
                        noremap = true,
                        nowait = true,
                    },
                },
                filesystem = {
                    filtered_items = {
                        visible = true, -- when true, they will just be displayed differently than normal items
                        hide_dotfiles = true,
                        hide_gitignored = true,
                        hide_hidden = true, -- only works on Windows for hidden files/directories
                        hide_by_name = {
                            "node_modules",
                        },
                        hide_by_pattern = {
                            "*.meta",
                            "*/src/*/tsconfig.json",
                        },
                        always_show = {
                            ".gitignored",
                        },
                        never_show = {
                            ".DS_Store",
                            "thumbs.db",
                        },
                        never_show_by_pattern = {
                            ".null-ls_*",
                        },
                    },
                },
                document_symbols = {
                    kinds = {
                        File = { icon = "󰈙", hl = "Tag" },
                        Namespace = { icon = "󰌗", hl = "Include" },
                        Package = { icon = "󰏖", hl = "Label" },
                        Class = { icon = "󰌗", hl = "Include" },
                        Property = { icon = "󰆧", hl = "@property" },
                        Enum = { icon = "󰒻", hl = "@number" },
                        Function = { icon = "󰊕", hl = "Function" },
                        String = { icon = "󰀬", hl = "String" },
                        Number = { icon = "󰎠", hl = "Number" },
                        Array = { icon = "󰅪", hl = "Type" },
                        Object = { icon = "󰅩", hl = "Type" },
                        Key = { icon = "󰌋", hl = "" },
                        Struct = { icon = "󰌗", hl = "Include" },
                        Operator = { icon = "󰆕", hl = "Operator" },
                        TypeParameter = { icon = "󰊄", hl = "Type" },
                        StaticMethod = { icon = "󰠄 ", hl = "Function" },
                    },
                },
            }

            vim.cmd [[nnoremap \ :Neotree reveal<cr>]]
        end,
    },
}
